/*
 *                        _oo0oo_
 *                       o8888888o
 *                       88" . "88
 *                       (| -_- |)
 *                       0\  =  /0
 *                     ___/`---'\___
 *                   .' \\|     |// '.
 *                  / \\|||  :  |||// \
 *                 / _||||| -:- |||||- \
 *                |   | \\\  - /// |   |
 *                | \_|  ''\---/''  |_/ |
 *                \  .-\__  '-'  ___/-. /
 *              ___'. .'  /--.--\  `. .'___
 *           ."" '<  `.___\_<|>_/___.' >' "".
 *          | | :  `- \`.;`\ _ /`;.`/ - ` : | |
 *          \  \ `_.   \_ __\ /__ _/   .-` /  /
 *      =====`-.____`.___ \_____/___.-`___.-'=====
 *                        `=---='
 *
 *
 *      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 *            佛祖保佑     永不宕机     永无BUG
 */

/*
 *           佛曰:
 *                   写字楼里写字间，写字间里程序员；
 *                   程序人员写程序，又拿程序换酒钱。
 *                   酒醒只在网上坐，酒醉还来网下眠；
 *                   酒醉酒醒日复日，网上网下年复年。
 *                   但愿老死电脑间，不愿鞠躬老板前；
 *                   奔驰宝马贵者趣，公交自行程序员。
 *                   别人笑我忒疯癫，我笑自己命太贱；
 *                   不见满街漂亮妹，哪个归得程序员？
 */

/*
 * @Author: 涵崽
 * @Date: 2023-12-19 11:17:12
 * @email: 1045654@qq.com
 * @gitee: https://gitee.com/han-zai
 * @LastEditors: 涵崽
 * @LastEditTime: 2023-12-19 14:24:53
 * @Description: 微信：1045654
 */
// 获取当前协议+域名+端口号
export function origin() {
  return window.location.origin;
}

// 获取当前域名+端口号
export function host() {
  return window.location.host;
}

// 只获取当前域名
export function hostname() {
  return window.location.hostname;
}

// 获取完整路径,包含(协议,域名,端口号,文件地址,参数)
export function href() {
  return window.location.href;
}

// 获取文件路径,不包含其他
export function pathname() {
  return window.location.pathname;
}

// 获取当前端口号
export function port() {
  return window.location.port;
}

/**
 * 获取当前协议 http: 或者 https:
 *
 * 默认的返回值是带有冒号的,所以在这里处理了一下
 * @returns {Number} type 值为0时,默认返回不带冒号的协议,否则返回带冒号
 */
export function protocol(type = 0) {
  if (type == 0) {
    return window.location.protocol.split(":").join("");
  } else {
    return window.location.protocol;
  }
}

/**
 * 获取当前 url 参数
 *
 * @returns {Object} 返回值以键值对的格式返回,
 * 这里只处理了数字类型和字符串类型,如果需要处理其他类型请进行二次封装
 */
export function search() {
  const params = new URLSearchParams(window.location.search);
  const obj = {};
  for (const [key, value] of params) {
    const numberValue = Number(value); // 尝试将值转换为数字
    obj[key] = isNaN(numberValue) ? value : numberValue; // 如果转换成功，使用数字；否则，使用原始字符串
  }
  return obj;
}
